#include <iostream>
#include <iomanip>

using namespace std;

int main(){
	unsigned int n,m;
	cin >> n >> m;
	while(n!=0 || m!=0){
		unsigned int a,b,result;
		if(n==0 || m==0){
			cout << 0 << endl; //Que se debe devolver en el caso en el que una de las dimensiones es 0
			cin >> n >> m;
			continue;
		}
		if (n>m){
			a=n;
			b=m;
		}else{
			a=m;
			b=n;
		}
		result=1;
		for(int i=n+m;i>a;i--){
			result*=i;
			while (b>1 && result%b==0) result/=b--; //Esto siempre funciona?
		}
		cout << fixed << setprecision(0) << result << endl;
		cin >> n >> m;
	}
}
